package com.sunyur.tailor.channel.service.inner.purchase.model;

import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * @author U
 * @Description
 * @date 2022/6/9
 */
@Data
public class StrategyOrderVO implements Serializable {

    private static final long serialVersionUID = -5887018364601429522L;
    private Integer code;
    /**
     * 策略单编码
     */
    private String purCode;
    /**
     * 采购组织
     */
    private PurchaseOrgVO purchaseOrg;
    /**
     * 采购组
     */
    private PurchaseTeamVO purchaseTeam;
    /**
     * 	状态
     */
    private String status;
    /**
     * 采购策略名称
     */
    private String type;

    private String typeName;
    /**
     * 下游单类型
     */
    private String sourcingType;


    private TermsVO terms;
    /**
     * 供应商信息
     */
    private List<SuppliersVO> suppliers;
    /**
     * 说明
     */
    private String remark;
    private String attachment;
    /**
     * 策略单标题
     */
    private String title;
    /**
     * 建议价格总计(本位币)
     */
    private BigDecimal amount;
    /**
     * 数据来源类型
     */
    private String originType;
    /**
     * 采购类型
     */
    private Integer purchaseType;
    /**
     *
     */
    private Map creator;
    /**
     * 创建/发布时间
     */
    private Date createTime;

    @Data
    public static class PurchaseOrgVO implements Serializable{
        private static final long serialVersionUID = -1230869162329503125L;
        /**
         * 采购组织编码
         */
        private String code;
        /**
         * 采购组织名称
         */
        private String name;
    }

    @Data
    public static class PurchaseTeamVO implements Serializable{
        private static final long serialVersionUID = 17603765138862389L;
        /**
         * 采购组编码
         */
        private String code;
        /**
         * 采购组名称
         */
        private String name;
    }

    @Data
    public static class TermsVO implements Serializable {
        private static final long serialVersionUID = 6043887490286084224L;
        /**
         * 需求背景
         */
        private String demandBg;
        /**
         * 参与方式
         */
        private Integer sourceWay;
        /**
         * 评选方式
         */
        private String scoreType;
        /**
         * 时间计划
         */
        private String timePlan;
        /**
         * 是否启用报价模版
         */
        private Integer enableItemize;
        /**
         * 协议结束时间
         */
        private Long protocolEndTime;
        /**
         * 协议开始时间
         */
        private Long protocolStartTime;
        /**
         * 评标类型
         */
        private Integer reviewRule;
        /**
         * 是否启用评分
         */
        private Integer isScore;
        /**
         * 手动修改招标评分
         */
        private Integer isModifyScore;
        /**
         * 寻源单多轮是否可以邀请新的供应商
         */
        private Integer isAllowSupplier;
        /**
         * 寻源单多轮是否可以删除供应商
         */
        private Integer isDeleteSupplier;
        /**
         * 是否启用预估含税单价必填
         */
        private Integer isEstimatedPrice;
    }

    @Data
    public static class SuppliersVO implements Serializable{
        private static final long serialVersionUID = 8317158251885038033L;
        /**
         * 供应商编码
         */
        private String supplierCode;
        /**
         * 供应商名称
         */
        private String supplierName;
        /**
         * 统一社会信息代码
         */
        private String creditCode;
        /**
         * 供应商联系人
         */
        private ContactUserVO contactUser;

        @Data
        public static class ContactUserVO implements Serializable{
            private static final long serialVersionUID = -768128923999440010L;
            private String code;
            /**
             * 名称
             */
            private String name;
            /**
             * 工号
             */
            private String workNumber;
            /**
             * 邮箱
             */
            private String email;
            /**
             * 手机号
             */
            private String mobile;
            /**
             * 职位
             */
            private String position;
        }
    }
}
